// 实现函数 callIt，调用之后满足如下条件
// 1、返回的结果为调用 fn 之后的结果
// 2、fn 的调用参数为 callIt 的第一个参数之后的全部参数

// call实现
// function callIt(fn) {
//     return fn(...[].slice.call(arguments).slice(1))
// }

// apply实现
function callIt(fn) {
    return fn.apply(null, [].slice.call(arguments).slice(1))
}

function test () {
  console.log(...arguments)
}

callIt(test, 1, 2, 3)